home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / web / c_cpp / cweb33p11a / cweb3.3p11a.readme < prev    next >
Text File  |  1994-12-27  |  7KB  |  112 lines

  1. Short: Literate programming discipline for C/C++.
  2. Files: cweb3.3p11a.tar.gz, cweb3.3p11a.tar.gz
  3. Uploader: scherer@genesis.informatik.rwth-aachen.de (Andreas Scherer)
  4. Author: levy@geom.umn.edu (Silvio Levy and Donald E. Knuth)
  5.  
  6. This  is  the  portability implementation of Silvio Levy's and Donald Ervin
  7. Knuth's CWEB system, version 3.3 of December 7, 1994, compiled and provided
  8. with  changefiles  for  ANSI-C,  TURBO-C,  and  SAS/C 6.x and makefiles for
  9. UNIX-make,  Borland-make  and  SAS-make by Andreas Scherer.  It is based on
  10. the  CWEB 3.1 port by Tomas Charles Willis and the CWEB 2.8 port by Carsten
  11. Steger  and  the  CWEB-p  3.0  distribution  by Hans-Hermann Bode and Klaus
  12. Guntermann, including all features of the original UNIX implementation like
  13. ANSI-C  and  C++  support,  full ASCII input capability, and more, plus all
  14. enhancements  made  in these AMIGA, MSDOS, and UNIX ports plus some special
  15. features like:
  16.  
  17.    - The complete source code is capable of being recompiled with SAS/C for
  18.      AmigaOS, with Borland C/C++ 3.1 for MSDOS, and with  CC, C89, and  GCC
  19.      for  UNIX without the need for further changes.  The Amiga versions of
  20.      all three system programs are compiled and linked in genuine C++ mode.
  21.      For compilation in  ANSI-C mode rename the .cc files to their .c form,
  22.      and modify the EXTENSION field in the makefile accordingly.
  23.  
  24.    - The `+l' option with its  argument `X' causes CWEAVE to prepend `X' to
  25.      `cwebmac.tex' in  the first line of the output file.  `X'  may  be any
  26.      string of characters (case dependent and possibly empty), e.g., if you
  27.      called  CWEAVE  with  the  option  `+ldansk',  the  danish  macro file
  28.      `danskcwebmac.tex'  would  be  included instead of `cwebmac.tex'.  The
  29.      macro  file  `Xcwebmac.tex' itself contains some  modifications to the
  30.      original `cwebmac.tex' file as described in the documentation.   There
  31.      are macro packages `dcwebmac.tex' by Andreas Scherer for German users,
  32.      `icwebmac.tex'  by  Giuseppe Ghib≥  for Italian users, and lately even
  33.      `fcwebmac.tex' by  Denis B. Roegel for French CWEB programmers.  These
  34.      macro  files  translate all captions used by the CWEAVE processor into
  35.      the   respective  languages  and  also  include  support  for  special
  36.      characters  like umlauts  (diacritics)  and some other frequently used
  37.      specials according to ISO Latin-1, IBM  PC International Codepage 850,
  38.      Macintosh 8-bit font table and HP Roman 8.  Similar packages for other
  39.      languages  can  easily  be added to this scheme.  To date there are no
  40.      conflicting languages, so single-character strings are used.
  41.  
  42.    - There  are  TeX macro  files `ecma94.sty', `hp8.sty', `mac8.sty',  and
  43.      `pc850.sty' for  support  of  extended  code  tables.  These have been
  44.      set up to work as `packages' for LaTeX2e too.  Also  included  are the
  45.      files `ecma94.w', `hp8.w',  `mac8.w',  and  `pc850.w' with appropriate
  46.      transliteration  tables.   The option  `+a'  of former versions of the
  47.      AMIGA installation is now replaced by the file  `amiga_types.w', which
  48.      can be `@i'ncluded in the source files where needed.
  49.  
  50.    - Two  AREXX  scripts for use with the CygnusEd Professional Editor were
  51.      added to this package, one for CTANGLE and CWEAVE, localized  with the
  52.      help of language catalogs under  AmigaOS version 2.1 or 3.0, the other
  53.      for use with the SAS/C 6.x compiler in connection with CED V3.5.
  54.  
  55.    - Both CTANGLE and CWEAVE are fully localized with  the help of language
  56.      catalogs and the `locale.library' of  AmigaOS 2.1/3.0.  Default is (of
  57.      course)  English;  catalogs  for  German  and Italian are provided and
  58.      other language catalogs  can easily be added.  #include files with the
  59.      English,  German,  and  Italian strings are provided for non-localized
  60.      operating systems.
  61.  
  62.    - An algorithm for recursive `@i'nclude file search was adapted from the
  63.      TeX  and  METAFONT  implementation.  The current directory is searched
  64.      first,  then the contents of the (possibly empty) environment variable
  65.      CWEBINPUTS, and then the (system dependent) internal defaults given in
  66.      the compile-time constants CWEBINPUTS in the respective makefiles.
  67.  
  68.    - The `-o' option was added in connection with `-i' by Carsten Steger.
  69.  
  70.    - Five additional CWEB example programs are included as examples for the
  71.      portability between PASCAL-WEB and C-CWEB and for the usage of the C++
  72.      features of version 3.1.  The  fifth  example program is a simple text
  73.      converter  for  files  with  extended  character codes of ISO-Latin-1,
  74.      PC-850, MAC 8-bit font, and HP 8-bit font.
  75.  
  76.    - All three system programs support the `version' information command.
  77.  
  78.    - All  three  system  programs are compiled in the NEAR data segment and
  79.      can be made resident.
  80.  
  81.    - The `+m' option enables ARexx communication between CWEB and the SAS/C
  82.      message browser SCMSG.  Any warnings or error messages are transferred
  83.      to its list  window.  The behaviour of  this feature can be controlled
  84.      via  the  external  environment variable SCMSGOPT, which may be set to
  85.      any legal option string as described in the documentation of the SAS/C
  86.      development system by SAS Institute.
  87.  
  88.    - The  output  files are only written when there are significant changes
  89.      to  their  contents, i.e., when  a CWEB source creates multiple output
  90.      files,  only  those  modules effected by changes will be recompiled in
  91.      the  `make'  process.  This mechanism was taken from  Preston Briggs's
  92.      NUWEB program, to whom credit is due.
  93.  
  94. Major  parts  of this Amiga port were done and completely tested with SAS/C
  95. version  6.3  and  SAS/C++ version 6.51 on the AMIGA.  After completion the
  96. official version [p10] of the package was re-ported to various UNIX systems
  97. (HP  9000, HP-PA, Sun, SGI) with CC, C89, and GCC, and ported to MSDOS with
  98. Borland  C/C++  3.1.  Provided that all these ports work successfully, I am
  99. quite sure that all bugs have been found and fixed.
  100.  
  101. New  and  modified  features  were tested on the AMIGA with SAS/C++ 6.51 in
  102. both  ANSI-C  and C++ mode and on a DEC station running Ultrix 4.4 with the
  103. DEC  CC compiler.  Again the resulting system was then ported to MSDOS with
  104. Borland  C/C++  3.1,  now  in  the form of three C++ projects (there wasn't
  105. enough  free  memory  to  start  Borland-make  from  within the development
  106. environment, so Makefile.pc actually wasn't tested).
  107.  
  108.  
  109. Enjoy, Andreas.
  110.  
  111. December 13, 1994.
  112.